There are many conventional techniques for searching a collection of documents. Commonly, a search specifies a list of terms, which are matched against terms in the documents or matched against indexed terms for the documents. In some cases, the matching implicitly uses “AND” between each of the terms, requiring a match against all terms. In other cases, the search program does a fuzzy best match using all of the terms. To provide greater control of the returned results, some search tools allow a user to create complex expressions with Boolean logic (e.g., using an SQL query). Although a Boolean query can provide precise control, people have considerable difficulty creating proper Boolean expressions when the expression is not a simple sequence that has just “AND” or just “OR”.